package com.yupi.yupicturebackend.api.aliyunai.model;

import cn.hutool.core.annotation.Alias;
import lombok.Data;

import java.io.Serializable;

@Data
public class CreateOutTextCreatePictureTaskRequest implements Serializable {

    /**
     * 模型，例如 "image-out-painting"
     */
    private String model = "wanx2.1-t2i-turbo";

    /**
     * 输入的基本信息，如提示词等。
     */
    private Input input;

    /**
     * 图像处理参数
     */
    private Parameters parameters;

    @Data
    public static class Input {
        /**
         * 必选，提示词
         */
        @Alias("prompt")
        private String prompt;
    }

    @Data
    public static class Parameters implements Serializable {
        /**
         随机数种子，用于控制模型生成内容的随机性。seed参数取值范围是[0, 2147483647]。
         如果不提供，则算法自动生成一个随机数作为种子。
         如果给定了，则根据n的值分别为n张图片生成seed参数，例如n=4，算法将分别生成seed、seed+1、seed+2、seed+3作为参数的图片。
         如果您希望生成内容保持相对稳定，请使用相同的seed参数值。
         */
        @Alias("seed")
        private Integer seed;

        /**
         输出图像的分辨率。默认值是1024*1024。
         图像宽高边长的像素范围为：[512, 1440]，单位像素。
         可任意组合以设置不同的图像分辨率，最高可达200万像素。
         */
        @Alias("size")
        private String size="1024*1024";


        /**
         * 是否开启prompt智能改写。开启后会使用大模型对输入prompt进行智能改写，仅对正向提示词有效。
         * 对于较短的输入prompt生成效果提升明显，但会增加3-4秒耗时
         */
        @Alias("prompt_extend")
        private boolean promptExtend=false;

        /**
         * 是否添加水印标识，水印位于图片右下角，文案为“AI生成”。
         */
        @Alias("watermark")
        private boolean watermark=true;

    }
}
